Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## java.awt.geom
Class Line2D

    java.lang.Object
      |
      +--java.awt.geom.Line2D

All Implemented Interfaces:
  Cloneable, Shape

Direct Known Subclasses:
  Line2D.Double, Line2D.Float

public abstract class Line2D
extends Object
implements Shape, Cloneable

This `Line2D` represents a line segment in (x, y) coordinate space. This class, like all of the Java 2D API, uses a default coordinate system called user space in which the y-axis values increase downward and x-axis values increase to the right. For more information on the user space coordinate system, see the Coordinate Systems section of the Java 2D Programmer's Guide.

This class is only the abstract superclass for all objects that store a 2D line segment. The actual storage representation of the coordinates is left to the subclass.

Nested Class Summary
`static class` | `Line2D.Double` A line segment specified with double coordinates.
`static class` | `Line2D.Float` A line segment specified with float coordinates.

Constructor Summary
`protected` | `Line2D()` This is an abstract class that cannot be instantiated directly.

Method Summary
`Object` | `clone()` Creates a new object of the same class as this object.
`boolean` | `contains(double x, double y)` Tests if a specified coordinate is inside the boundary of this `Line2D`.
`boolean` | `contains(double x, double y, double w, double h)` Tests if the interior of this `Line2D` entirely contains the specified set of rectangular coordinates.
`boolean` | `contains(Point2D p)` Tests if a given `Point2D` is inside the boundary of this `Line2D`.
`boolean` | `contains(Rectangle2D r)` Tests if the interior of this `Line2D` entirely contains the specified `Rectangle2D`.
`Rectangle` | `getBounds()` Returns the bounding box of this `Line2D`.
`abstract Point2D` | `getP1()` Returns the starting `Point2D` of this `Line2D`.
`abstract Point2D` | `getP2()` Returns the end `Point2D` of this `Line2D`.
`PathIterator` | `getPathIterator(AffineTransform at)` Returns an iteration object that defines the boundary of this `Line2D`.
`PathIterator` | `getPathIterator(AffineTransform at, double flatness)` Returns an iteration object that defines the boundary of this flattened `Line2D`.
`abstract double` | `getX1()` Returns the X coordinate of the start point in double precision.
`abstract double` | `getX2()` Returns the X coordinate of the end point in double precision.
`abstract double` | `getY1()` Returns the Y coordinate of the start point in double precision.
`abstract double` | `getY2()` Returns the Y coordinate of the end point in double precision.
`boolean` | `intersects(double x, double y, double w, double h)` Tests if this `Line2D` intersects the interior of a specified set of rectangular coordinates.
`boolean` | `intersects(Rectangle2D r)` Tests if this `Line2D` intersects the interior of a specified `Rectangle2D`.
`boolean` | `intersectsLine(double X1, double Y1, double X2, double Y2)` Tests if the line segment from (X1, Y1) to (X2, Y2) intersects this line segment.
`boolean` | `intersectsLine(Line2D l)` Tests if the specified line segment intersects this line segment.
`static boolean` | `linesIntersect(double X1, double Y1, double X2, double Y2, double X3, double Y3, double X4, double Y4)` Tests if the line segment from (X1, Y1) to (X2, Y2) intersects the line segment from (X3, Y3) to (X4, Y4).
`double` | `ptLineDist(double PX, double PY)` Returns the distance from a point to this line.
`static double` | `ptLineDist(double X1, double Y1, double X2, double Y2, double PX, double PY)` Returns the distance from a point to a line.
`double` | `ptLineDist(Point2D pt)` Returns the distance from a `Point2D` to this line.
`double` | `ptLineDistSq(double PX, double PY)` Returns the square of the distance from a point to this line.
`static double` | `ptLineDistSq(double X1, double Y1, double X2, double Y2, double PX, double PY)` Returns the square of the distance from a point to a line.
`double` | `ptLineDistSq(Point2D pt)` Returns the square of the distance from a specified `Point2D` to this line.
`double` | `ptSegDist(double PX, double PY)` Returns the distance from a point to this line segment.
`static double` | `ptSegDist(double X1, double Y1, double X2, double Y2, double PX, double PY)` Returns the distance from a point to a line segment.
`double` | `ptSegDist(Point2D pt)` Returns the distance from a `Point2D` to this line segment.
`double` | `ptSegDistSq(double PX, double PY)` Returns the square of the distance from a point to this line segment.
`static double` | `ptSegDistSq(double X1, double Y1, double X2, double Y2, double PX, double PY)` Returns the square of the distance from a point to a line segment.
`double` | `ptSegDistSq(Point2D pt)` Returns the square of the distance from a `Point2D` to this line segment.
`int` | `relativeCCW(double PX, double PY)` Returns an indicator of where the specified point (PX, PY) lies with respect to this line segment.
`static int` | `relativeCCW(double X1, double Y1, double X2, double Y2, double PX, double PY)` Returns an indicator of where the specified point (PX, PY) lies with respect to the line segment from (X1, Y1) to (X2, Y2).
`int` | `relativeCCW(Point2D p)` Returns an indicator of where the specified `Point2D` lies with respect to this line segment.
`abstract void` | `setLine(double X1, double Y1, double X2, double Y2)` Sets the location of the endpoints of this `Line2D` to the specified double coordinates.
`void` | `setLine(Line2D l)` Sets the location of the endpoints of this `Line2D` to the same as those endpoints of the specified `Line2D`.
`void` | `setLine(Point2D p1, Point2D p2)` Sets the location of the endpoints of this `Line2D` to the specified `Point2D` coordinates.

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface java.awt.Shape
`getBounds2D`

Constructor Detail

### Line2D

    protected Line2D()

  This is an abstract class that cannot be instantiated directly. Type-specific implementation subclasses are available for instantiation and provide a number of formats for storing the information necessary to satisfy the various accessory methods below.

See Also:
  `Line2D.Float`, `Line2D.Double`

Method Detail

### getX1

    public abstract double getX1()

  Returns the X coordinate of the start point in double precision.

  Returns:
    the X coordinate of this `Line2D` object's starting point.

### getY1

    public abstract double getY1()

  Returns the Y coordinate of the start point in double precision.

  Returns:
    the Y coordinate of this `Line2D` object's starting point.

### getP1

    public abstract Point2D getP1()

  Returns the starting `Point2D` of this `Line2D`.

  Returns:
    the starting `Point2D` of this `Line2D`.

### getX2

    public abstract double getX2()

  Returns the X coordinate of the end point in double precision.

  Returns:
    the X coordinate of this `Line2D` object's starting point.

### getY2

    public abstract double getY2()

  Returns the Y coordinate of the end point in double precision.

  Returns:
    the Y coordinate of this `Line2D` object's starting point.

### getP2

    public abstract Point2D getP2()

  Returns the end `Point2D` of this `Line2D`.

  Returns:
    a `Point2D` that is the endpoint of this `Line2D`.

### setLine

    public abstract void setLine(double X1,
                                 double Y1,
                                 double X2,
                                 double Y2)

  Sets the location of the endpoints of this `Line2D` to the specified double coordinates.

### setLine

    public void setLine(Point2D p1,
                        Point2D p2)

  Sets the location of the endpoints of this `Line2D` to the specified `Point2D` coordinates.

### setLine

    public void setLine(Line2D l)

  Sets the location of the endpoints of this `Line2D` to the same as those endpoints of the specified `Line2D`.

  Parameters:
    `l` - the specified `Line2D`

### relativeCCW

    public static int relativeCCW(double X1,
                                  double Y1,
                                  double X2,
                                  double Y2,
                                  double PX,
                                  double PY)

  Returns an indicator of where the specified point (PX, PY) lies with respect to the line segment from (X1, Y1) to (X2, Y2). The return value can be either 1, -1, or 0 and indicates in which direction the specified line must pivot around its first endpoint, (X1, Y1), in order to point at the specified point (PX, PY).

  A return value of 1 indicates that the line segment must turn in the direction that takes the positive X axis towards the negative Y axis. In the default coordinate system used by Java 2D, this direction is counterclockwise.

  A return value of -1 indicates that the line segment must turn in the direction that takes the positive X axis towards the positive Y axis. In the default coordinate system, this direction is clockwise.

  A return value of 0 indicates that the point lies exactly on the line segment. Note that an indicator value of 0 is rare and not useful for determining colinearity because of floating point rounding issues.

  If the point is colinear with the line segment, but not between the endpoints, then the value will be -1 if the point lies "beyond (X1, Y1)" or 1 if the point lies "beyond (X2, Y2)".

  Returns:
    an integer that indicates the position of the third specified coordinates with respect to the line segment formed by the first two specified coordinates.

### relativeCCW

    public int relativeCCW(double PX,
                           double PY)

  Returns an indicator of where the specified point (PX, PY) lies with respect to this line segment. See the method comments of `relativeCCW(double, double, double, double, double, double)` to interpret the return value.

  Returns:
    an integer that indicates the position of the specified coordinates with respect to the current line segment.
  See Also:
    `relativeCCW(double, double, double, double, double, double)`

### relativeCCW

    public int relativeCCW(Point2D p)

  Returns an indicator of where the specified `Point2D` lies with respect to this line segment. See the method comments of `relativeCCW(double, double, double, double, double, double)` to interpret the return value.

  Parameters:
    `p` - the specified `Point2D` to be compared with the current line segment
  Returns:
    an integer that indicates the position of the `Point2D` with respect to the current line segment.
  See Also:
    `relativeCCW(double, double, double, double, double, double)`

### linesIntersect

    public static boolean linesIntersect(double X1,
                                         double Y1,
                                         double X2,
                                         double Y2,
                                         double X3,
                                         double Y3,
                                         double X4,
                                         double Y4)

  Tests if the line segment from (X1, Y1) to (X2, Y2) intersects the line segment from (X3, Y3) to (X4, Y4).

  Returns:
    `true` if the first specified line segment and the second specified line segment intersect each other; `false` otherwise.

### intersectsLine

    public boolean intersectsLine(double X1,
                                  double Y1,
                                  double X2,
                                  double Y2)

  Tests if the line segment from (X1, Y1) to (X2, Y2) intersects this line segment.

  Returns:
    if this line segment and the specified line segment intersect each other; `false` otherwise.

### intersectsLine

    public boolean intersectsLine(Line2D l)

  Tests if the specified line segment intersects this line segment.

  Parameters:
    `l` - the specified `Line2D`
  Returns:
    `true` if this line segment and the specified line segment intersect each other; `false` otherwise.

### ptSegDistSq

    public static double ptSegDistSq(double X1,
                                     double Y1,
                                     double X2,
                                     double Y2,
                                     double PX,
                                     double PY)

  Returns the square of the distance from a point to a line segment. The distance measured is the distance between the specified point and the closest point between the specified endpoints. If the specified point intersects the line segment in between the endpoints, this method returns 0.0.

  Returns:
    a double value that is the square of the distance from the specified point to the specified line segment.
  See Also:
    `ptLineDistSq(double, double, double, double, double, double)`

### ptSegDist

    public static double ptSegDist(double X1,
                                   double Y1,
                                   double X2,
                                   double Y2,
                                   double PX,
                                   double PY)

  Returns the distance from a point to a line segment. The distance measured is the distance between the specified point and the closest point between the specified endpoints. If the specified point intersects the line segment in between the endpoints, this method returns 0.0.

  Returns:
    a double value that is the distance from the specified point to the specified line segment.
  See Also:
    `ptLineDist(double, double, double, double, double, double)`

### ptSegDistSq

    public double ptSegDistSq(double PX,
                              double PY)

  Returns the square of the distance from a point to this line segment. The distance measured is the distance between the specified point and the closest point between the current line's endpoints. If the specified point intersects the line segment in between the endpoints, this method returns 0.0.

  Returns:
    a double value that is the square of the distance from the specified point to the current line segment.
  See Also:
    `ptLineDistSq(double, double)`

### ptSegDistSq

    public double ptSegDistSq(Point2D pt)

  Returns the square of the distance from a `Point2D` to this line segment. The distance measured is the distance between the specified point and the closest point between the current line's endpoints. If the specified point intersects the line segment in between the endpoints, this method returns 0.0.

  Parameters:
    `pt` - the specified `Point2D` being measured against this line segment.
  Returns:
    a double value that is the square of the distance from the specified `Point2D` to the current line segment.
  See Also:
    `ptLineDistSq(Point2D)`

### ptSegDist

    public double ptSegDist(double PX,
                            double PY)

  Returns the distance from a point to this line segment. The distance measured is the distance between the specified point and the closest point between the current line's endpoints. If the specified point intersects the line segment in between the endpoints, this method returns 0.0.

  Returns:
    a double value that is the distance from the specified point to the current line segment.
  See Also:
    `ptLineDist(double, double)`

### ptSegDist

    public double ptSegDist(Point2D pt)

  Returns the distance from a `Point2D` to this line segment. The distance measured is the distance between the specified point and the closest point between the current line's endpoints. If the specified point intersects the line segment in between the endpoints, this method returns 0.0.

  Parameters:
    `pt` - the specified `Point2D` being measured against this line segment
  Returns:
    a double value that is the distance from the specified `Point2D` to the current line segment.
  See Also:
    `ptLineDist(Point2D)`

### ptLineDistSq

    public static double ptLineDistSq(double X1,
                                      double Y1,
                                      double X2,
                                      double Y2,
                                      double PX,
                                      double PY)

  Returns the square of the distance from a point to a line. The distance measured is the distance between the specified point and the closest point on the infinitely-extended line defined by the specified coordinates. If the specified point intersects the line, this method returns 0.0.

  Returns:
    a double value that is the square of the distance from the specified point to the specified line.
  See Also:
    `ptSegDistSq(double, double, double, double, double, double)`

### ptLineDist

    public static double ptLineDist(double X1,
                                    double Y1,
                                    double X2,
                                    double Y2,
                                    double PX,
                                    double PY)

  Returns the distance from a point to a line. The distance measured is the distance between the specified point and the closest point on the infinitely-extended line defined by the specified coordinates. If the specified point intersects the line, this method returns 0.0.

  Returns:
    a double value that is the distance from the specified point to the specified line.
  See Also:
    `ptSegDist(double, double, double, double, double, double)`

### ptLineDistSq

    public double ptLineDistSq(double PX,
                               double PY)

  Returns the square of the distance from a point to this line. The distance measured is the distance between the specified point and the closest point on the infinitely-extended line defined by this `Line2D`. If the specified point intersects the line, this method returns 0.0.

  Returns:
    a double value that is the square of the distance from a specified point to the current line.
  See Also:
    `ptSegDistSq(double, double)`

### ptLineDistSq

    public double ptLineDistSq(Point2D pt)

  Returns the square of the distance from a specified `Point2D` to this line. The distance measured is the distance between the specified point and the closest point on the infinitely-extended line defined by this `Line2D`. If the specified point intersects the line, this method returns 0.0.

  Parameters:
    `pt` - the specified `Point2D` being measured against this line
  Returns:
    a double value that is the square of the distance from a specified `Point2D` to the current line.
  See Also:
    `ptSegDistSq(Point2D)`

### ptLineDist

    public double ptLineDist(double PX,
                             double PY)

  Returns the distance from a point to this line. The distance measured is the distance between the specified point and the closest point on the infinitely-extended line defined by this `Line2D`. If the specified point intersects the line, this method returns 0.0.

  Returns:
    a double value that is the distance from a specified point to the current line.
  See Also:
    `ptSegDist(double, double)`

### ptLineDist

    public double ptLineDist(Point2D pt)

  Returns the distance from a `Point2D` to this line. The distance measured is the distance between the specified point and the closest point on the infinitely-extended line defined by this `Line2D`. If the specified point intersects the line, this method returns 0.0.

  Parameters:
    `pt` - the specified `Point2D` being measured
  Returns:
    a double value that is the distance from a specified `Point2D` to the current line.
  See Also:
    `ptSegDist(Point2D)`

### contains

    public boolean contains(double x,
                            double y)

  Tests if a specified coordinate is inside the boundary of this `Line2D`. This method is required to implement the `Shape` interface, but in the case of `Line2D` objects it always returns `false` since a line contains no area.

  Specified by:
    `contains` in interface `Shape`
  Returns:
    `false` because a `Line2D` contains no area.

### contains

    public boolean contains(Point2D p)

  Tests if a given `Point2D` is inside the boundary of this `Line2D`. This method is required to implement the `Shape` interface, but in the case of `Line2D` objects it always returns `false` since a line contains no area.

  Specified by:
    `contains` in interface `Shape`
  Parameters:
    `p` - the specified `Point2D` to be tested
  Returns:
    `false` because a `Line2D` contains no area.

### intersects

    public boolean intersects(double x,
                              double y,
                              double w,
                              double h)

  Tests if this `Line2D` intersects the interior of a specified set of rectangular coordinates.

  Specified by:
    `intersects` in interface `Shape`
  Parameters:
    `w` - the width of the specified rectangular area
    `h` - the height of the specified rectangular area
  Returns:
    `true` if this `Line2D` intersects the interior of the specified set of rectangular coordinates; `false` otherwise.
  See Also:
    `Area`

### intersects

    public boolean intersects(Rectangle2D r)

  Tests if this `Line2D` intersects the interior of a specified `Rectangle2D`.

  Specified by:
    `intersects` in interface `Shape`
  Parameters:
    `r` - the specified `Rectangle2D` to be tested
  Returns:
    `true` if this `Line2D` intersects the interior of the specified `Rectangle2D`; `false` otherwise.
  See Also:
    `Shape.intersects(double, double, double, double)`

### contains

    public boolean contains(double x,
                            double y,
                            double w,
                            double h)

  Tests if the interior of this `Line2D` entirely contains the specified set of rectangular coordinates. This method is required to implement the `Shape` interface, but in the case of `Line2D` objects it always returns false since a line contains no area.

  Specified by:
    `contains` in interface `Shape`
  Parameters:
    `w` - the width of the specified rectangular area
    `h` - the height of the specified rectangular area
  Returns:
    `false` because a `Line2D` contains no area.
  See Also:
    `Area`, `Shape.intersects(double, double, double, double)`

### contains

    public boolean contains(Rectangle2D r)

  Tests if the interior of this `Line2D` entirely contains the specified `Rectangle2D`. This method is required to implement the `Shape` interface, but in the case of `Line2D` objects it always returns `false` since a line contains no area.

  Specified by:
    `contains` in interface `Shape`
  Parameters:
    `r` - the specified `Rectangle2D` to be tested
  Returns:
    `false` because a `Line2D` contains no area.
  See Also:
    `Shape.contains(double, double, double, double)`

### getBounds

    public Rectangle getBounds()

  Returns the bounding box of this `Line2D`.

  Specified by:
    `getBounds` in interface `Shape`
  Returns:
    a `Rectangle` that is the bounding box of the `Line2D`.
  See Also:
    `Shape.getBounds2D()`

### getPathIterator

    public PathIterator getPathIterator(AffineTransform at)

  Returns an iteration object that defines the boundary of this `Line2D`. The iterator for this class is not multi-threaded safe, which means that this `Line2D` class does not guarantee that modifications to the geometry of this `Line2D` object do not affect any iterations of that geometry that are already in process.

  Specified by:
    `getPathIterator` in interface `Shape`
  Parameters:
    `at` - the specified `AffineTransform`
  Returns:
    a `PathIterator` that defines the boundary of this `Line2D`.

### getPathIterator

    public PathIterator getPathIterator(AffineTransform at,
                                        double flatness)

  Returns an iteration object that defines the boundary of this flattened `Line2D`. The iterator for this class is not multi-threaded safe, which means that this `Line2D` class does not guarantee that modifications to the geometry of this `Line2D` object do not affect any iterations of that geometry that are already in process.

  Specified by:
    `getPathIterator` in interface `Shape`
  Parameters:
    `at` - the specified `AffineTransform`
    `flatness` - the maximum amount that the control points for a given curve can vary from colinear before a subdivided curve is replaced by a straight line connecting the endpoints. Since a `Line2D` object is always flat, this parameter is ignored.
  Returns:
    a `PathIterator` that defines the boundary of the flattened `Line2D`

### clone

    public Object clone()

  Creates a new object of the same class as this object.

  Overrides:
    `clone` in class `Object`
  Returns:
    a clone of this instance.
  Throws:
    `OutOfMemoryError` - if there is not enough memory.
  Since:
    1.2
See Also:
  `Cloneable`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Java, Java 2D, and JDBC are trademarks or registered trademarks of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.